CROSS-REFERENCE TO OTHER APPLICATIONS
The following application of common assignee contains some common disclosure, and is believed to have an effective filing date identical with that of the present application:
U.S. patent application entitled "A System and Method For Adding Detail to Texture Imagery in Computer Generated Interactive Graphics", by Greg Buchner and Bob Drebin, Ser. No. 08/088,349, incorporated herein by reference in its entirety.
1. Field of the Invention
The present invention relates generally to texture imagery in computer generated interactive graphics, and more particularly to sharpening texture imagery in computer generated interactive graphics.
2. Related Art
A typical computer generated image comprises a plurality a polygons. Each polygon may contribute to one or more pixels of the final image (a pixel is a picture element of a display means), wherein each of the pixels may have a unique color based on such attributes as intrinsic color, lighting (specular highlights, shading, shadows, etc.), atmospheric effects (fog, haze, etc.), and texture. As is well known, textures are conventionally used to provide visual detail for polygon surfaces.
Conventional computer image generation systems store varying levels of detail (LOD) of texture data. LOD is described in many publicly available documents, such as "Texture Tile Considerations for Raster Graphics", William Dugan, Jr., et al., SIGGRAPH 1978 Proceedings, Vol. 12 #3, August 1978, which is herein incorporated by reference in its entirety.
FIG. 1 illustrates the LODs stored for a particular image. LOD[0], also called the base texture, is shown in FIG. 1 as being an 8.times.8 texture. The base texture LOD[0] is the highest resolution texture. LOD n represents the base texture LOD[0] magnified by a factor of 2.sup.-n (other magnification factors could also be used). Thus, LOD[1] is a 4.times.4 texture, LOD[2] is a 2.times.2 texture, and LOD[3] is a 1.times.1 texture.
LODs of resolutions greater than the base texture LOD[0] are usually not stored due to memory limitations. For example, the memory requirement to store LOD[-1] (a 16.times.16 texture) is four times that to store LOD[0]. Similarly, a system which stores six LODs (that is, LOD[-1], LOD[-2], . . . , LOD[-6]) of resolutions greater than LOD[0] would require over 8,000 times more memory than a system which stores only LOD[0] (and LODs lower in resolution than LOD[0]). Thus, storing LODs of greater resolution than the base texture LOD[0] is expensive and not practical.
A conventional texture technique is to map a two dimensional grid of texture data to an initially constant color polygon. This technique produces high quality results as long as an approximately 1:1 ratio of texture elements (texels) to display elements (pixels) is maintained. During successive magnification operations, LODs of greater and greater resolution are required to maintain the 1:1 ratio. Often, the required magnification is such that the 1:1 ratio cannot be maintained even when the base texture LOD[0] is used. In such cases (in conventional systems), data from the base texture are interpolated to perform the magnification. However, this results in a blurred image since the content of a single texture cell significantly affects more than one pixel of a display means (a cell is the smallest unit of characteristic definition that is accessible by the system).
More particularly, one problem that occurs when the required magnification is such that the 1:1 ratio of texel to pixel cannot be maintained even when the base texture LOD[O] is used is that the textured image lacks sharpness (i.e., blurry) as a result of over magnification.
A conventional approach for solving this problem in image processing systems involves sharpening an image by extrapolating from the image and a low-pass filtered (blurry) representation of the image. This technique is called unsharp-masking. The equation for a sharpened image S in accordance with unsharp-masking is defined as: EQU S(x,y)=(1+k)*F(x,y)-k*B(x,y)
where F is the original image, B is a blurred copy of F, and k is the sharpness factor. In conventional image processing systems, k is constant across the entire image. Consequently, conventional systems do not produce high resolution, clear results when the magnification of the image varies across the image. Conventional systems employing unsharp-masking are further flawed in that sharpening is not done simultaneously with magnification.
A second conventional approach for solving this problem involves using high order interpolation functions to preserve sharpness during magnification. However, this second conventional approach is flawed because the filter shape (used during interpolation) does not change on a per pixel basis depending on the degree of magnification.
Thus, what is required is a system and method that provides sufficient sharpness when an image is magnified beyond the resolution of the base texture LOD[0], without having to store textures of higher resolution than the base texture LOD[0].